/**
 ******************************************************************************
 * @file           : bsp_mpu6050_config.h
 * @brief          : MPU6050 Configuration File
 ******************************************************************************
 * @attention
 *
 * MPU6050六轴传感器配置文件
 * 用户根据实际需求修改此文件
 *
 ******************************************************************************
 */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __BSP_MPU6050_CONFIG_H
#define __BSP_MPU6050_CONFIG_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/

/* ============================================================================ */
/*                        硬件配置（改这里）                                      */
/* ============================================================================ */

/**
 * 是否使用BSP层I2C驱动
 * 选项：1=使用BSP层IIC驱动, 0=直接使用HAL库
 */
#define MPU6050_USE_BSP_I2C     0

#if (MPU6050_USE_BSP_I2C == 1)
    #include "./BSP/IIC_GPIO/bsp_iic_gpio.h"
#else
    extern I2C_HandleTypeDef hi2c1;
    #define MPU6050_I2C_HANDLE  &hi2c1
#endif

/**
 * MPU6050 I2C地址
 * AD0接GND: 0xD0 (0x68<<1)
 * AD0接VCC: 0xD2 (0x69<<1)
 */
#define MPU6050_I2C_ADDR        0xD0

/**
 * 加速度计量程
 * 选项: 2, 4, 8, 16 (单位: g)
 */
#define MPU6050_ACCEL_RANGE     2

/**
 * 陀螺仪量程
 * 选项: 250, 500, 1000, 2000 (单位: °/s)
 */
#define MPU6050_GYRO_RANGE      250

/* ============================================================================ */
/*                       日志系统配置（改这里的数字）                             */
/* ============================================================================ */
/* 日志后端选择：1=EasyLogger, 2=printf, 0=关闭 */
#define MPU6050_USE_LOG         1

/* 根据配置自动定义日志宏 */
#if (MPU6050_USE_LOG == 1)
    /* 使用EasyLogger */
    #ifndef LOG_TAG
        #define LOG_TAG    "MPU6050"
    #endif
    #include "elog.h"
    
#elif (MPU6050_USE_LOG == 2)
    /* 使用printf */
    #include <stdio.h>
    #define log_i(fmt, ...)     printf(fmt "\r\n", ##__VA_ARGS__)
    #define log_w(fmt, ...)     printf("[WARN] " fmt "\r\n", ##__VA_ARGS__)
    #define log_e(fmt, ...)     printf("[ERROR] " fmt "\r\n", ##__VA_ARGS__)
    #define log_d(fmt, ...)     printf("[DEBUG] " fmt "\r\n", ##__VA_ARGS__)
    
#else
    /* 关闭日志 */
    #define log_i(fmt, ...)
    #define log_w(fmt, ...)
    #define log_e(fmt, ...)
    #define log_d(fmt, ...)
#endif

/* Exported macro ------------------------------------------------------------*/
/* Exported variables --------------------------------------------------------*/
/* Exported functions --------------------------------------------------------*/

#ifdef __cplusplus
}
#endif

#endif /* __BSP_MPU6050_CONFIG_H */
